home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 12.2 KB | 404 lines | [TEXT/MPS ] |
- (*
- File: Menus.mod
-
- Contains: Menu Manager Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$IF UNDEFINED OLDROUTINENAMES*)
- (*$SET OLDROUTINENAMES FALSE*)
- (*$END*)
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE Menus;
-
- IMPORT SYSTEM, Types, Quickdraw;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
-
- CONST
- noMark* = 0; (*mark symbol for MarkItem*)
- (* menu defProc messages *)
- mDrawMsg* = 0;
- mChooseMsg* = 1;
- mSizeMsg* = 2;
- mDrawItemMsg* = 4;
- mCalcItemMsg* = 5;
- textMenuProc* = 0;
- hMenuCmd* = 27; (*itemCmd == 0x001B ==> hierarchical menu*)
- hierMenu* = -1; (*a hierarchical menu - for InsertMenu call*)
- mPopUpMsg* = 3; (*menu defProc messages - place yourself*)
- mctAllItems* = -98; (*search for all Items for the given AIFF.ID*)
- mctLastIDIndic* = -99; (*last color table entry has this in AIFF.ID field*)
-
- (*$IF UNDEFINED STRICT_MENUS *)
- (*$SET STRICT_MENUS FALSE*)
- (*$END*)
- (*$IF STRICT_MENUS *)
-
- TYPE
- MenuRef* = Types.Ptr;
-
- MenuHandle* = MenuRef;
-
- (*$ELSE*)
-
- TYPE
- MenuInfo* = RECORD
- menuID*: INTEGER;
- menuWidth*: INTEGER;
- menuHeight*: INTEGER;
- menuProc*: Types.Handle;
- enableFlags*: LONGINT;
- menuData*: Types.Str255;
- END;
-
- MenuPtr* = POINTER TO MenuInfo;
- MenuHandle* = HANDLE TO MenuInfo (*ΔΔ POINTER TO MenuPtr*);
-
- MenuRef* = MenuHandle;
-
- (*$END*)
- MenuDefProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (message: INTEGER; theMenu: MenuRef; VAR menuRect: Types.Rect; hitPt: Types.Point; VAR whichItem: INTEGER);
- MenuBarDefProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (selector: INTEGER; message: INTEGER; parameter1: INTEGER; parameter2: LONGINT): LONGINT;
- MenuHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ;
- MBarHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR menuRect: Types.Rect): INTEGER;
- MenuDefUPP* = Types.UniversalProcPtr;
- MenuBarDefUPP* = Types.UniversalProcPtr;
- MenuHookUPP* = Types.UniversalProcPtr;
- MBarHookUPP* = Types.UniversalProcPtr;
-
- CONST
- uppMenuDefProcInfo* = $0000FF80; (* PROCEDURE (2 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param); *)
- uppMenuBarDefProcInfo* = $00003AB0; (* PROCEDURE (2 byte param, 2 byte param, 2 byte param, 4 byte param): 4 byte result; *)
- uppMenuHookProcInfo* = $00000000; (* PROCEDURE ; *)
- uppMBarHookProcInfo* = $000000CF; (* SPECIAL_CASE_PROCINFO( kSpecialCaseMBarHook ) *)
-
- PROCEDURE NewMenuDefProc*(userRoutine: MenuDefProcPtr): MenuDefUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewMenuBarDefProc*(userRoutine: MenuBarDefProcPtr): MenuBarDefUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewMenuHookProc*(userRoutine: MenuHookProcPtr): MenuHookUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewMBarHookProc*(userRoutine: MBarHookProcPtr): MBarHookUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallMenuDefProc*(message: INTEGER; theMenu: MenuRef; VAR menuRect: Types.Rect; hitPt: Types.Point; VAR whichItem: INTEGER; userRoutine: MenuDefUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallMenuBarDefProc*(selector: INTEGER; message: INTEGER; parameter1: INTEGER; parameter2: LONGINT; userRoutine: MenuBarDefUPP): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallMenuHookProc*(userRoutine: MenuHookUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallMBarHookProc*(VAR menuRect: Types.Rect; userRoutine: MBarHookUPP): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented*: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- TYPE
- MCEntry* = RECORD
- mctID*: INTEGER; (*menu AIFF.ID. AIFF.ID* = 0 is the menu bar*)
- mctItem*: INTEGER; (*menu Item. Item* = 0 is a title*)
- mctRGB1*: Quickdraw.RGBColor; (*usage depends on AIFF.ID and Item*)
- mctRGB2*: Quickdraw.RGBColor; (*usage depends on AIFF.ID and Item*)
- mctRGB3*: Quickdraw.RGBColor; (*usage depends on AIFF.ID and Item*)
- mctRGB4*: Quickdraw.RGBColor; (*usage depends on AIFF.ID and Item*)
- mctReserved*: INTEGER; (*reserved for internal use*)
- END;
-
- MCEntryPtr* = POINTER TO MCEntry;
-
- MCTable* = ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF MCEntry;
-
- MCTablePtr* = POINTER TO MCTable;
- MCTableHandle* = HANDLE TO MCTable (*ΔΔ POINTER TO MCTablePtr*);
-
- MenuCRsrc* = RECORD
- numEntries*: INTEGER; (*number of entries*)
- mcEntryRecs*: MCTable; (*ARRAY [1..numEntries] of MCEntry*)
- END;
-
- MenuCRsrcPtr* = POINTER TO MenuCRsrc;
- MenuCRsrcHandle* = HANDLE TO MenuCRsrc (*ΔΔ POINTER TO MenuCRsrcPtr*);
-
- PROCEDURE GetMBarHeight*(): INTEGER;
- (*$IF NOT CFMSYSTEMCALLS*)
- INLINE PASCAL $3EB8, $0BAA; (* MOVE.w $0BAA,(SP) *)
- (*$END*)
-
- PROCEDURE InitMenus*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A930;
- (*$END*)
- PROCEDURE NewMenu*(menuID: INTEGER; menuTitle: Types.ConstStr255Param): MenuRef;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A931;
- (*$END*)
- PROCEDURE GetMenu*(resourceID: INTEGER): MenuRef;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9BF;
- (*$END*)
- PROCEDURE DisposeMenu*(theMenu: MenuRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A932;
- (*$END*)
- PROCEDURE AppendMenu*(menu: MenuRef; data: Types.ConstStr255Param);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A933;
- (*$END*)
- PROCEDURE AppendResMenu*(theMenu: MenuRef; theType: Types.ResType);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A94D;
- (*$END*)
- PROCEDURE InsertResMenu*(theMenu: MenuRef; theType: Types.ResType; afterItem: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A951;
- (*$END*)
- PROCEDURE InsertMenu*(theMenu: MenuRef; beforeID: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A935;
- (*$END*)
- PROCEDURE DrawMenuBar*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A937;
- (*$END*)
- PROCEDURE InvalMenuBar*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A81D;
- (*$END*)
- PROCEDURE DeleteMenu*(menuID: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A936;
- (*$END*)
- PROCEDURE ClearMenuBar*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A934;
- (*$END*)
- PROCEDURE GetNewMBar*(menuBarID: INTEGER): Types.Handle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9C0;
- (*$END*)
- PROCEDURE GetMenuBar*(): Types.Handle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A93B;
- (*$END*)
- PROCEDURE SetMenuBar*(menuList: Types.Handle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A93C;
- (*$END*)
- PROCEDURE InsertMenuItem*(theMenu: MenuRef; itemString: Types.ConstStr255Param; afterItem: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A826;
- (*$END*)
- PROCEDURE DeleteMenuItem*(theMenu: MenuRef; item: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A952;
- (*$END*)
- PROCEDURE MenuKey*(ch: CHAR): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A93E;
- (*$END*)
- PROCEDURE HiliteMenu*(menuID: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A938;
- (*$END*)
- PROCEDURE SetMenuItemText*(theMenu: MenuRef; item: INTEGER; itemString: Types.ConstStr255Param);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A947;
- (*$END*)
- PROCEDURE GetMenuItemText*(theMenu: MenuRef; item: INTEGER; VAR itemString: Types.Str255);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A946;
- (*$END*)
- PROCEDURE DisableItem*(theMenu: MenuRef; item: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A93A;
- (*$END*)
- PROCEDURE EnableItem*(theMenu: MenuRef; item: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A939;
- (*$END*)
- PROCEDURE CheckItem*(theMenu: MenuRef; item: INTEGER; checked: BOOLEAN);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A945;
- (*$END*)
- PROCEDURE SetItemMark*(theMenu: MenuRef; item: INTEGER; markChar: CHAR);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A944;
- (*$END*)
- PROCEDURE GetItemMark*(theMenu: MenuRef; item: INTEGER; VAR markChar: CHAR);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A943;
- (*$END*)
- PROCEDURE SetItemIcon*(theMenu: MenuRef; item: INTEGER; iconIndex: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A940;
- (*$END*)
- PROCEDURE GetItemIcon*(theMenu: MenuRef; item: INTEGER; VAR iconIndex: Types.Byte);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A93F;
- (*$END*)
- PROCEDURE SetItemStyle*(theMenu: MenuRef; item: INTEGER; chStyle: Types.Style);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A942;
- (*$END*)
- PROCEDURE GetItemStyle*(theMenu: MenuRef; item: INTEGER; VAR chStyle: Types.Style);
- EXTERNAL PASCAL;
- PROCEDURE CalcMenuSize*(theMenu: MenuRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A948;
- (*$END*)
- PROCEDURE CountMItems*(theMenu: MenuRef): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A950;
- (*$END*)
- PROCEDURE GetMenuHandle*(menuID: INTEGER): MenuRef;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A949;
- (*$END*)
- PROCEDURE FlashMenuBar*(menuID: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A94C;
- (*$END*)
- PROCEDURE SetMenuFlash*(count: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A94A;
- (*$END*)
- PROCEDURE MenuSelect*(startPt: Types.Point): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A93D;
- (*$END*)
- PROCEDURE InitProcMenu*(resID: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A808;
- (*$END*)
- PROCEDURE GetItemCmd*(theMenu: MenuRef; item: INTEGER; VAR cmdChar: CHAR);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A84E;
- (*$END*)
- PROCEDURE SetItemCmd*(theMenu: MenuRef; item: INTEGER; cmdChar: CHAR);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A84F;
- (*$END*)
- PROCEDURE PopUpMenuSelect*(menu: MenuRef; top: INTEGER; left: INTEGER; popUpItem: INTEGER): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A80B;
- (*$END*)
- PROCEDURE MenuChoice*(): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA66;
- (*$END*)
- PROCEDURE DeleteMCEntries*(menuID: INTEGER; menuItem: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA60;
- (*$END*)
- PROCEDURE GetMCInfo*(): MCTableHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA61;
- (*$END*)
- PROCEDURE SetMCInfo*(menuCTbl: MCTableHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA62;
- (*$END*)
- PROCEDURE DisposeMCInfo*(menuCTbl: MCTableHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA63;
- (*$END*)
- PROCEDURE GetMCEntry*(menuID: INTEGER; menuItem: INTEGER): MCEntryPtr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA64;
- (*$END*)
- PROCEDURE SetMCEntries*(numEntries: INTEGER; menuCEntries: MCTablePtr);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA65;
- (*$END*)
- PROCEDURE InsertFontResMenu*(theMenu: MenuRef; afterItem: INTEGER; scriptFilter: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $303C, $0400, $A825;
- (*$END*)
- PROCEDURE InsertIntlResMenu*(theMenu: MenuRef; theType: Types.ResType; afterItem: INTEGER; scriptFilter: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $303C, $0601, $A825;
- (*$END*)
- PROCEDURE SystemEdit*(editCmd: INTEGER): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9C2;
- (*$END*)
- PROCEDURE SystemMenu*(menuResult: LONGINT);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9B5;
- (*$END*)
- (*$IF OLDROUTINENAMES *)
- PROCEDURE AddResMenu*(theMenu: MenuRef; theType: Types.ResType);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A94D;
- (*$END*)
- PROCEDURE InsMenuItem*(theMenu: MenuRef; itemString: Types.ConstStr255Param; afterItem: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A826;
- (*$END*)
- PROCEDURE DelMenuItem*(theMenu: MenuRef; item: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A952;
- (*$END*)
- PROCEDURE SetItem*(theMenu: MenuRef; item: INTEGER; itemString: Types.ConstStr255Param);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A947;
- (*$END*)
- PROCEDURE GetItem*(theMenu: MenuRef; item: INTEGER; VAR itemString: Types.Str255);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A946;
- (*$END*)
- PROCEDURE GetMHandle*(menuID: INTEGER): MenuRef;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A949;
- (*$END*)
- PROCEDURE DelMCEntries*(menuID: INTEGER; menuItem: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA60;
- (*$END*)
- PROCEDURE DispMCInfo*(menuCTbl: MCTableHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA63;
- (*$END*)
- (*$END*)
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END Menus.
-